13
|
Damian Powell · 技术社区 · 14 年前 |
![]() |
1
5
|
![]() |
2
3
据我所知,你不能。 Visual Studio未使用“real”msbuild,它使用的内部生成引擎的行为与msbuild.exe非常相似,但仍有一些细微的差异。这个构建引擎缓存目标,所以一旦你改变了什么,你就必须重新启动vs。我相信,它甚至被记录在某个地方,并且没有已知的解决方法(大约一年前我搜索了它,但什么也没有发现)。 您可以通过vs-api强制vs重新加载目标——所以,您必须创建(或找到)一个自定义的附加组件来完成这项工作。 另一个选项是使用.targets文件以外的其他文件来存储配置。例如,您可以使用一个纯文本文件,并使用msbuild对其进行分析(不是很优雅,但它应该可以工作)。 UPD。 这就是我之前做的。msbuild通过exec调用外部工具,其中working directory=“$(solutiondir)”,该工具“知道”有关文件名、位置等的所有约定,因此工作目录足以完成作业。其他配置数据存储在外部工具的配置中,因此缓存没有问题。 另外,看看 this question 关于从文件中读取项目。我想,你需要更好的套房。 |
![]() |
3
2
通过修改项目文件(包括自定义的msbuild文件)并使其无效,然后重新加载项目,使其保持卸载状态,然后修复项目文件并重新加载,我取得了一些间歇性的成功。 它有时工作,有时不工作,但比重新启动Visual Studio要好。 |
![]() |
4
1
如果您需要快速而肮脏的方法来修复它,您可以简单地重新加载解决方案(通过 https://stackoverflow.com/a/6877056/182371 ) 您可以通过关闭打开解决方案文件或单击外部编辑器中的“保存”(然后当您返回到vs时,如果您想重新加载,它将asko)来完成此操作。 |