首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Azure项目构建包在VS中工作,如果命令行出现错误MSB4096,则失败

Azure项目构建包在VS中工作,如果命令行出现错误MSB4096,则失败
EN

Stack Overflow用户
提问于 2013-06-11 07:36:29
回答 3查看 5.2K关注 0票数 11

我有一个项目的解决方案,它可以从VS和命令行编译。

如果我试图制作一个包,它可以在VS中正常工作,但在命令行中失败。

下面是我在Powershell中的命令行:

代码语言:javascript
运行
AI代码解释
复制
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe .\project.sln --% 
/p:Configuration="QA" /p:TargetProfile="CloudQA" /p:Platform="Any CPU" /target:Publish
/nr:false

我有一个错误:

代码语言:javascript
运行
AI代码解释
复制
"C:\CI\project\project.sln" (Publish target) (1) ->
"C:\CI\project\WindowsAzure\WindowsAzure.ccproj.metaproj" (Publish target) (11) ->
"C:\CI\project\WindowsAzure\WindowsAzure.ccproj" (Publish target) (12) ->
(PrepareRoleItems target) ->
  C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.0\Microsoft.WindowsAzure.targets(13
02,5): error MSB4096: The item "C:\CI\project\project.WebAPI\project.WebAPI.csproj" in item list "Projec
tReferenceWithConfiguration" does not define a value for metadata "Name".  In order to use this metadata, either qualif
y it by specifying %(ProjectReferenceWithConfiguration.Name), or ensure that all items in this list define a value for
this metadata. [C:\CI\project\WindowsAzure\WindowsAzure.ccproj]

编辑几件有趣的事情:这是我的csdef文件

代码语言:javascript
运行
AI代码解释
复制
<WorkerRole name="ProjectWorker" vmsize="ExtraSmall">
  <Imports>
    <Import moduleName="Diagnostics" />
  </Imports>
  <Endpoints>
    <InternalEndpoint name="InternalEndpoint1" protocol="http" />
  </Endpoints>
  <ConfigurationSettings>
  </ConfigurationSettings>
</WorkerRole>
<WebRole name="Project.Web" vmsize="ExtraSmall">
  <Sites>
    <Site name="Web">
      <Bindings>
        <Binding name="http" endpointName="http" />
      </Bindings>
    </Site>
    <Site name="Api" physicalDirectory="..\..\..\Project.WebAPI">
      <Bindings>
        <Binding name="http" endpointName="http81" />
      </Bindings>
    </Site>
  </Sites>
  <Endpoints>
    <InputEndpoint name="http" protocol="http" port="80" />
    <InputEndpoint name="http81" protocol="http" port="81" />
  </Endpoints>
  <Imports>
    <Import moduleName="Diagnostics" />
  </Imports>
</WebRole>

如你所见,我在一个WebRole上有两个网站。

现在,让我们看一下ccproj文件:

代码语言:javascript
运行
AI代码解释
复制
<ItemGroup>
  <ProjectReference Include="..\Project.Web\Project.Web.csproj">
    <Name>Project.Web</Name>
    <Project>{5d000123-0000-4b6e-b5fa-72525afca7f5}</Project>
    <Private>True</Private>
    <RoleType>Web</RoleType>
    <RoleName>Project.Web</RoleName>
    <UpdateDiagnosticsConnectionStringOnPublish>True</UpdateDiagnosticsConnectionStringOnPublish>
  </ProjectReference>
  <ProjectReference Include="..\ProjectWorker\ProjectWorker.csproj">
    <Name>ProjectWorker</Name>
    <Project>{22e99999-1000-4559-8507-a948b7e3d1b0}</Project>
    <Private>True</Private>
    <RoleType>Worker</RoleType>
    <RoleName>ProjectWorker</RoleName>
    <UpdateDiagnosticsConnectionStringOnPublish>True</UpdateDiagnosticsConnectionStringOnPublish>
  </ProjectReference>
</ItemGroup>

只在ccproj中引用了两个项目,而不是3个。

云项目在sln中有3个依赖项。

如果我在ccproj中有这样的推荐信:

代码语言:javascript
运行
AI代码解释
复制
<ProjectReference Include="..\Project.WebAPI\Project.WebAPI.csproj">
  <Name>Project.Web</Name>
  <Project>{A0F88888-3333-4823-A34F-5F01F0A3FFFF}</Project>
  <Private>True</Private>
  <RoleType>Web</RoleType>
  <RoleName>Project.WebAPI</RoleName>
  <UpdateDiagnosticsConnectionStringOnPublish>True</UpdateDiagnosticsConnectionStringOnPublish>
</ProjectReference>

我有一个错误:

代码语言:javascript
运行
AI代码解释
复制
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.0
\Microsoft.WindowsAzure.targets(987,5): error : CloudServices25 : Multiple directories are 
specified for role Project.Web. [C:\CI\project\WindowsAzure\WindowsAzure.ccproj]

现在,如果我像这样更新引用:

代码语言:javascript
运行
AI代码解释
复制
<ProjectReference Include="..\Project.WebAPI\Project.WebAPI.csproj">
  <Name>Project.WebAPI</Name>
  <Project>{A0F88888-3333-4823-A34F-5F01F0A3FFFF}</Project>
  <Private>True</Private>
  <RoleType>Web</RoleType>
  <RoleName>Project.Web</RoleName>
  <UpdateDiagnosticsConnectionStringOnPublish>True</UpdateDiagnosticsConnectionStringOnPublish>
</ProjectReference>

我有一个错误:

代码语言:javascript
运行
AI代码解释
复制
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.0
\Microsoft.WindowsAzure.targets(987,5): error : CloudServices26 : Cannot find role 
named 'Project.WebAPI' in service description file 
C:\CI\project\WindowsAzure\bin\UAT\ServiceDefinition.csdef.     
[C:\CI\project\WindowsAzure\WindowsAzure.ccproj]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-12 04:52:00

这篇文章解决了我的问题:http://michaelcollier.wordpress.com/2013/01/14/multiple-sites-in-a-web-role/

如果你在一个网站上有几个网站,一定要阅读!

票数 3
EN

Stack Overflow用户

发布于 2014-03-11 19:17:26

我找到了这个链接:Visual Studio 2010 Beta 2 myTODO Error message,它对我有用。从这一联系中获得的宝贵信息:

如果您将Azure角色项目之外的任何内容指定为服务项目的依赖项,则看起来Azure可能不喜欢它。我之所以这样做,是因为MyWebRole.csproj依赖于xxx.csproj,而不是MyService.ccproj依赖于xxx.csproj,而且它起了作用。

票数 6
EN

Stack Overflow用户

发布于 2013-10-29 10:27:56

在从命令行构建云项目时,我偶然发现了一个类似的问题,特别是如果VirtualDirectory标记引用的web项目被标记为云项目的构建依赖项,则会出现此异常。

为了避免这种情况,并确保web项目被编译并包含在cspack中,我想出了一个比Swell's answer中引用的更简单的过程--特别是它不需要修改项目文件,而只需要以精确的顺序调用两个目标:

  1. 确保在Configuration Manager中web项目将在所需的解决方案配置中重新构建(例如,确保它是在Release配置下构建的);
  2. 确保web项目不是云项目的构建依赖项;
  3. 进行解决方案的重新构建,例如 MsBuild solution.sln /t:Rebuild . 这样,web项目将被重新编译。
  4. 执行云项目的发布,例如 MsBuild solution.sln /t:cloudproject.ccproj:publish . web项目将正确复制到cspack文件中。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17048171

复制
相关文章
为什么构造函数不能为虚函数
1、从使用角度         虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是要初始化实例,那使用虚函数也没有实际意义呀。所以构造函数没有必要是虚函数。 虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的那个成员函数。而构造函数是在创建对象时自动调用的,不可能通过父类的指针或者引用去调用,因此也就规定构造函数不能是虚函数。 2、从实现上看,vbtl在构造函数调用后才建立,因而构造函数不可能成为虚函数    从实际含义上看,在调用构造函数时还不能确定对象
用户1215536
2018/02/05
2.3K0
Dart自定义类、构造函数
//创建自定义类 命名为Person class Person { var name = "张三"; var age = 30; setInfo() { this.age = 50; } getInfo() { print("${this.name}, ${this.age}"); } // 默认构造函数只可写一个 简写 Person() Person() { print('实例化的时候自动触发'); } // 命名构造函数可以写多个 Pers
明知山
2020/09/03
7850
CA1032:实现标准异常构造函数
如果不能提供完整的构造函数集,要正确处理异常将变得比较困难。 例如,具有签名 NewException(string, Exception) 的构造函数用于创建由其他异常引起的异常。 如果没有此构造函数,你无法创建和引发包含内部(嵌套)异常的自定义异常实例,在这种情况下,托管代码应执行此操作。
用户4268038
2022/01/10
4600
Laravel 自定义公共函数的引入
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/78925048
泥豆芽儿 MT
2018/09/11
7100
Laravel 自定义公共函数的引入
CA1012:抽象类型不应具有公共构造函数
抽象类型的构造函数只能由派生类型调用。 由于公共构造函数可创建类型的实例,但无法创建抽象类型的实例,因此具有公共构造函数的抽象类型在设计上是错误的。
用户4268038
2022/01/10
5100
c++构造函数是否可以抛出异常_什么叫抛出异常
从语法上来说,构造函数可以抛出异常。但从逻辑上和风险控制上,构造函数中尽量不要抛出异常。万不得已,一定要注意防止内存泄露。
全栈程序员站长
2022/09/22
1.7K1
ArkTS-@Builder自定义构造函数
前面章节介绍了如何创建一个自定义组件。该自定义组件内部UI结构固定,仅与使用方进行数据传递。ArkUI还提供了一种更轻量的UI元素复用机制@Builder,@Builder所修饰的函数遵循build()函数语法规则,开发者可以将重复使用的UI元素抽象成一个方法,在build方法里调用。
酒楼
2023/06/23
8540
是否能在构造函数,析构函数中抛出异常?
宋凯伦
2018/01/04
3.7K0
C++构造函数抛出异常注意事项
从语法上来说,构造函数可以抛出异常。但从逻辑上和风险控制上,构造函数中尽量不要抛出异常。万不得已,一定要注意防止内存泄露。
恋喵大鲤鱼
2019/02/22
2.3K0
C++构造函数 | 构造函数
C++在建立一个对象时,常常需要作某些初始化,如果一个数据成员未被赋值,则它的值是不可预知的,因为在系统为它分配内存时,保留了这些存储单元的原状,这就成为了这些数据成员的初始值,在C++中,对象是一个实体,它反映了客观事物的属性,是应该有确定的值的。
小林C语言
2021/01/26
2.2K0
C++构造函数 | 构造函数
【Kotlin】Kotlin 构造函数 ( 主构造函数 | 主构造函数声明属性 | init 初始化代码块 | 次构造函数 | 构造函数委托 | 调用构造函数创建实例对象 )
1 . 构造函数个数 : Kotlin 类定义时需要指定主构造函数 , 还可以指定 0 ~ 多个次构造函数 ;
韩曙亮
2023/03/27
4.3K0
mysql自定义异常_mysql自定义函数详解
[最近研究mysql数据库性能的相关问题,为了对比不同版本之间的差别。笔者找了一台测试服务器升级了该服务器的mysql数据库进行测试,在升级mysql过程中遇到了一些问题并将其
全栈程序员站长
2022/10/04
1.8K0
【C++】构造函数调用规则 ( 默认构造函数 | 默认无参构造函数 | 默认拷贝构造函数 | 构造函数调用规则说明 )
如果 C++ 类中 没有定义构造函数 , C++ 编译器会自动为该类提供一个 " 默认的无参构造函数 " , 函数体为空 , 不做任何操作 ;
韩曙亮
2023/10/15
1.4K0
【C++】构造函数调用规则 ( 默认构造函数 | 默认无参构造函数 | 默认拷贝构造函数 | 构造函数调用规则说明 )
js 中的构造函数,构造函数作用,构造函数和普通函数的区别
函数的定义方式: 1.声明式函数定义: function 函数名 (){};这种定义方式,会将函数声明提升到该函数所在作用域的最开头,也是就无论你在这个函数的最小作用域的那儿使用这种方式声明的函数,在这个作用域内,你都可以调用这个函数为你所用。 2.函数表达式:let fun = function(){}; 此方式定义的函数,只能在该作用域中,这段赋值代码执行之后才能通过fun()调用函数,否则,由于变量声明提升,fun === undefined。 3.new Function 形式: var fun1 = new Function (arg1 , arg2 ,arg3 ,…, argN , body );Function构造函数所有的参数都是字符串类型。除了最后一个参数, 其余的参数都作为生成函数的参数即形参。这里可以没有参数。最后一个参数, 表示的是要创建函数的函数体。
全栈程序员站长
2022/10/04
3.5K0
为什么不允许使用 Java 静态构造函数?
不允许使用 Java 静态构造函数,但是为什么呢?在深入探讨不允许使用静态构造函数的原因之前,让我们看看如果要使 构造函数静态化 会发生什么。
淡定的蜗牛
2019/10/28
3.1K0
【C++】构造函数分类 ① ( 构造函数分类简介 | 无参构造函数 | 有参构造函数 | 拷贝构造函数 | 代码示例 - 三种类型构造函数定义与调用 )
无参构造函数 : 只负责为指针类型的成员变量分配内存 , 并赋值一个初始值 , 没有具体的赋值信息 , 该初始化只能为 成员变量 赋值一个默认值 ;
韩曙亮
2023/10/15
4970
【C++】构造函数分类 ① ( 构造函数分类简介 | 无参构造函数 | 有参构造函数 | 拷贝构造函数 | 代码示例 - 三种类型构造函数定义与调用 )
【说站】js如何自定义构造函数创建对象
1、函数内部不需要new构建函数的过程,直接用this代替对象写属性和方法,也不需要return返回值。比工厂方法更方便。
很酷的站长
2022/11/24
2.7K0
【说站】js如何自定义构造函数创建对象
点击加载更多

相似问题

无法创建vpc (公共和私有子网)

12

AWS vpc从公共子网接入Internet

12

公共子网中的ALB是否可以将流量路由到私有子网中的实例?

20

VPC "fromLookup“导致所有私有子网和无公共子网

20

<AWS VPC>无法从公共子网实例中ping私有子网实例

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文