首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual 2015 UP1总是重新构建我的C# netmodule-output项目。能修好吗?

Visual 2015 UP1总是重新构建我的C# netmodule-output项目。能修好吗?
EN

Stack Overflow用户
提问于 2016-01-21 05:05:27
回答 1查看 367关注 0票数 1

我有一个名为'X‘的C#项目,我修改了X.csproj文件,并将<OutputType>Library</OutputType>更改为<OutputType>Module</OutputType> --这意味着我现在输出的是.netmodule文件,而不是.dll文件,这很酷,我可以使用netmodules作为C++/CLI项目的输入。

但是,Visual坚持在每个构建中重新编译该项目,当我将构建输出详细化为“诊断”时,我会在输出中看到以下一行:

项目“X”不是最新的。缺少输出文件‘C:\X\bin\Debug\X.exe’。

当然,问题是编译器输出的是X.netmodule,而不是X.exe,因此永远找不到X.exe,因此我的项目在每次构建时都会重新编译。更糟糕的是,如果我从csproj上的命令行运行msbuild,则会发生正确的行为,即只有在项目中的文件发生更改时才进行重新构建。

这使我相信,VS2015或其他人正在错误地计算最终输出名称,因为我为<OutputType>指定了模块,而且它是VS2015强制重新构建的,而不是Msbuild。

我知道修改<OutputType> of .csproj是不标准的,不受支持,但似乎其他人正在使用这种方法,这似乎是一个已知的问题,可能是一个解决办法。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-01-21 05:30:48

好吧,我很想听听其他对这件事有洞察力的人的意见,但我想出了一个解决办法。我只是在Properties>Build事件>构建后事件命令行中添加了一个复制命令。

复制$(TargetDir)$(TargetName).netmodule $(TargetDir)$(TargetName).exe

这意味着当VS查找exe (而不是.netmodule)时,它会找到它,并且它与.netmodule有相同的日期,因此VS关于是否重新构建的逻辑应该得到纠正。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34915774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档