相关疑难解决方法(0)

从命令行在解决方案中仅构建一个项目

我有一个解决方案,里面有很多解决方案文件夹,里面有很多c#项目.

如何从命令行仅构建/重建其中一个项目?

我想有一些方法可以使用msbuild但我对msbuild一无所知.

谢谢!

c# msbuild visual-studio

41
推荐指数
3
解决办法
3万
查看次数

未在Windows 10上登录时,Visual Studio 2013 devenv无法构建项目

我有一个项目,我在Windows 10机器上的zsh中使用以下命令构建:

devenv $sln -project $project -rebuild "Release|x64"
Run Code Online (Sandbox Code Playgroud)

如果我在终端本地运行它,它总是有效.然而,我通过任务调度程序运行它,有时通过(cygwin)ssh运行它.它仍然有效,但前提是我实际上是在本地登录本机或使用远程桌面会话.

如果在用户注销时运行该命令,我会看到以下消息:

Microsoft Visual Studio检测到配置问题.要更正此问题,请以管理员身份重新启动 有关详细信息,请访问:http://go.microsoft.com/fwlink/?LinkId = 320596

使用ssh的示例.

  1. 我登录物理机
  2. 我进了机器
  3. 运行命令.工作良好.
  4. 在物理机上注销
  5. 在同一个ssh会话中运行命令.失败.

当我说"物理机器"时,我的意思是运行命令的主机.

我有一台最新的Windows 10 Professional机器和最新的Visual Studio 2013.

如果命令是通过Windows任务调度程序运行(在没有以最高权限登录时设置为工作),则在用户注销时也会失败.

将devenv设置为始终以管理员身份打开(使用我在SO上看到的所有方法)并没有帮助.禁用UAC没有帮助.

我会选择让机器一直处于登录状态,但是在远程桌面会话之后也会出现问题: - 如果我将远程桌面安装到该机器上,那么当我打开远程会话时,命令会继续工作(即使是通过ssh和任务调度程序),但是一旦断开rdp会话,它就会停止工作.

编辑:在执行点加载正确的用户配置文件,devenv活动日志显示没有错误或警告.日志只显示devenv退出之后Client rights determined.

编辑:我已经测试了@Callan的msbuild解决方案,它似乎适用于我的所有项目,使用以下解决方案构建:

msbuild $sln /t:Rebuild /p:Configuration=Release;Platform=x64
Run Code Online (Sandbox Code Playgroud)

以下是单个项目构建(在此处找到):

msbuild $sln /t:"$project:Rebuild" /p:Configuration=Release;Platform=x64 /p:BuildProjectReferences=false
Run Code Online (Sandbox Code Playgroud)

这并不是问题的严格解决方案,因为@SimonMourier指出,它们并不等同.这是一个幸运的解决方法,虽然它可能不适用于所有情况,但它似乎开始看起来没有更好的解决方案.

它肯定比我目前的解决方法更好,使机器自动登录和锁定,然后告诉我的机器在RDP会话结束时重新启动,确保我总是有一个交互式会话.

ssh scheduled-tasks visual-studio devenv visual-studio-2013

9
推荐指数
1
解决办法
1505
查看次数

命令行包服务结构应用程序

直到最近,我们的持续交付设置是使用以下命令提供Service Fabric软件包:

msbuild SFApp.sfproj /t:Package
Run Code Online (Sandbox Code Playgroud)

这是必要的,因为目标在解决方案级别不可用.即命令

msbuild SFSolution.sln /t:Package
Run Code Online (Sandbox Code Playgroud)

失败,因为目标不存在.

随着我们的依赖关系网格的增长,如果没有解决方案文件,大多数接口项目将无法构建(解决"OutputPath不存在"的问题).根据这个答案,似乎有办法做到这一点.不幸的是,虽然目标像清洁工作......

msbuild SFSolution.sln /t:SFApplication:Clean
(…snip…)
Build succeeded.
    0 Warning(s)
    0 Error(s)
Run Code Online (Sandbox Code Playgroud)

......目标套餐不会!

msbuild SFSolution.sln /t:SFApplication:Package
(…snip…)
Build FAILED.
"SFSolution.sln" (SFApplication:Package target) (1) -> SFSolution.sln.metaproj :
        error MSB4057: The target "SFApplication:Package" does not exist in the
        project. [SFSolution.sln]
    0 Warning(s)
    1 Error(s)
Run Code Online (Sandbox Code Playgroud)

(为清楚起见,解决方案/项目文件夹/名称省略/更改.如有必要,我可以提供实际日志.)

所以问题是:我怎样才能使用命令行,使用Package目标和解决方案文件构建一个项目?

或者我如何从命令行打包Service Fabric应用程序?

msbuild continuous-integration continuous-delivery azure-service-fabric

8
推荐指数
2
解决办法
3285
查看次数

错误MSB4057:项目中不存在目标"v8"

我正在尝试使用官方构建脚本并遵循官方Windows构建说明,将V8构建为ArangoDB的一部分.

所有v8*targets(v8-build.bat)的编译都失败:

msbuild All.sln /t:v8 /p:Configuration=Release /p:Platform=x64
msbuild All.sln /t:v8_libbase /p:Configuration=Release /p:Platform=x64
msbuild All.sln /t:v8_libplatform /p:Configuration=Release /p:Platform=x64
Run Code Online (Sandbox Code Playgroud)

错误MSB4057:项目中不存在目标"v8".

如果我在Visual Studio中打开解决方案文件,它看起来像这样:

All.sln

我可以建立v8,v8_libbasev8_libplatform在VS中很好.

  • Windows 7 64位
  • Visual Studio 2013 Ultimate
  • Cygwin 2.2.0
  • cmake 3.3.1

v8 compiler-errors msbuild-target arangodb visual-studio-2013

1
推荐指数
1
解决办法
6591
查看次数