我正在使用VisualSVN客户端和服务器,并且Web项目按要求工作的要求之一是将.sln与其他文件放在同一目录(root)中.
我认为这就像删除所有额外的父路径../和其他相对路径并保存它一样简单.但是,当我尝试打开它时,只需锁定Visual Studio.
有没有一种标准的方法来创建这种类型的解决方案文件或解决方案文件工具,以帮助确保它是有效的?或者我只是遗漏了一些非常明显的东西?
/
/MyWebsite.org.sln
/Images
/App_Data
/default.aspx
/default.aspx.cs
Run Code Online (Sandbox Code Playgroud)
显然这个伎俩,至少我要求的是你必须使用..\MyWebsite.org或任何包含网站文件的文件夹.
[编辑]我学到了什么,以及这个特定项目的最终.sln文件:
这是最终的解决方案文件,允许我打开网站并在.net文件夹的根目录中包含.sln.
Project("{E24C65DC-7377-472B-9ABA-BCSG3B73C61A}") = "MyWebsite.org", "\", "{F8F4E96F-40BF-4374-B8BA-968D0SGG4A9E}"
ProjectSection(WebsiteProperties) = preProject
TargetFramework = "3.5"
Debug.AspNetCompiler.VirtualPath = "/MyWebsite.org"
Debug.AspNetCompiler.PhysicalPath = "..\MyWebsite.org\"
Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\MyWebsite.org\"
Debug.AspNetCompiler.Updateable = "true"
Debug.AspNetCompiler.ForceOverwrite = "true"
Debug.AspNetCompiler.FixedNames = "false"
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.VirtualPath = "/MyWebsite.org"
Release.AspNetCompiler.PhysicalPath = "..\MyWebsite.org\"
Release.AspNetCompiler.TargetPath = "PrecompiledWeb\MyWebsite.org\"
Release.AspNetCompiler.Updateable = "true"
Release.AspNetCompiler.ForceOverwrite = "true"
Release.AspNetCompiler.FixedNames = "false"
Release.AspNetCompiler.Debug = "False"
VWDPort = "1603"
VWDDynamicPort = "false"
VWDVirtualPath = "/"
EndProjectSection
EndProject
Run Code Online (Sandbox Code Playgroud) visual-studio-2005 projects-and-solutions visual-studio-2008 visual-studio
我在Visual Studio 2010 Premium中遇到了一个奇怪的问题.我使用两台PC,第一个没有问题,第二个"解决方案平台"弹出菜单消失了,配置是一样的(Windows 7 x64).当我从mercurial仓库中打开一个项目时出现问题,我无法恢复弹出窗口.我重置Visual Studio设置并从安装程序完成修复.没变.如果我创建一个空白项目(框架2.0,3.0,3.5,4.0),"解决方案平台"弹出窗口仍然缺失.此外,如果我使用Build - > Configuration Manager更改目标平台,则对构建没有影响(例如,没有针对x86的编译).
任何想法(请不要完全重新安装)?
谢谢.
ps:错误的屏幕截图
安德烈
我有一个解决方案,包括一个主winforms应用程序,以及我希望记录的相关内部编写的类库dll.此记录应由同一记录器执行,无论主UI客户端或关联的dll是否调用此记录.dll当然可以被其他解决方案中具有不同记录器的其他应用程序使用,但在这些情况下将具有不同的log4net配置,并且可能是完全不同的一组appender.
一种方法是在主应用程序中创建单例并从中进行记录,但是由于log4net是它自己的单例,所以可以引用它,只要我们传递相同的字符串(或类型),log4net.LogManager.GetLogger我们将记录到相同的目的地(在我的情况下,我希望使用RollingFileAppender).
这有效.但是,鉴于DLL将具有许多类,这意味着我们希望记录的每个类实例化或静态类将需要i)定义记录器名称的参数(以便记录到同一目的地)和ii)在每个入口点都需要打电话log4net.LogManager.GetLogger(loggerName).
这里使用的最佳模式是什么?正确的方法是在每个程序集中创建单例实例吗?我担心的是,我们仍然需要将记录器名称传递给dll的每个入口点,这看起来有点过分.为了避免传入记录器名称,我可能会认为它始终等于System.Reflection.Assembly.GetCallingAssembly().GetName().Name.
如果这对于log4net来说太难了,还有其他更简单的解决方案,例如企业日志记录块吗?或者是面向方面编程(AOP)方法的最佳解决方案?
我有一个在Visual Studio 2008中创建的Web应用程序项目.
好吧,我添加了一个jquery文件夹并将其添加到源代码控制和其他类似的东西.我忘了把它添加到visual studio项目中.如何立即添加现有文件夹?我试过创建一个新文件夹并命名它,jquery但它给了我一个神秘的错误"该目录已经在磁盘上...如果你想看到这个目录,那么检查项目文件中的显示所有文件选项"然而我看了看,没有看到这样的选择.
是唯一的方法来重命名,然后通过visual studio命名并将我的所有文件复制到其中jquery来jquery2创建一个新文件夹jquery?
最初,我使用Mass Transit作为我的服务总线创建了一个控制台应用程序.最近,我切换到NServiceBus,它不需要你创建一个控制台应用程序,而是一个类库.在项目属性中,我只是将将其更改的设置从控制台应用程序切换到库,但是只能为x86构建它的约束仍然有效.
我现在无法将构建类型更改为任何CPU,因为它是一个控制台应用程序,现在应该是有效的.有没有办法将我的应用程序完全更改为类库,以便我可以运行构建任何CPU选项?我是否需要创建一个新项目,将文件复制到其中并继续这样做?或者它是否像改变项目(.proj)文件中的内容一样简单?
堆栈溢出问题缺少调试|任何项目的CPU构建配置和默认为Windows x64上的Debug | x86仅为控制台应用程序提供了有关此x86问题的更多上下文.
我通常会下载很多第三方源代码来检查它们并学习新东西.
我正在使用VS2013,每次打开旧的Visual Studio解决方案时,它都会自动升级项目,然后在我的默认Web浏览器上显示html报告.
是否有自动禁用报告的方法?(不是迁移操作,只是报告)
我没有在Visual Studio中找到任何禁用报告的选项,但是如果通过注册表设置该东西以破解它以完全禁用Web浏览器报告或在记事本中打开报告文件,可能会查看其他方法例?.
.net migration projects-and-solutions visual-studio visual-studio-2013
在解决方案资源管理器中,具有引用的vcxproj项目在与项目关联的每个引用上显示警告符号.突出显示引用时,属性面板指示完整路径为:
无法解析Microsoft.VisualStudio.ProjectSystem.References.UnresolvedBuildDependencyProject Reference"引用.
如果按下"..."框,则会显示相同的错误消息框,我无法选择新的参考.我已经尝试删除引用并再次添加它,但结果是一样的.添加新项目引用时,结果是相同的.
当我使用Visual Studio 2008(v90)工具集进行编译时,所有这些都会发生.如果我使用Visual Studio 2015(v140)工具集进行编译,则会正确显示引用库的完整路径.
一些背景:
我将项目从Visual Studio 2008升级到Visual Studio 2015.此项目包含托管和非托管类型.vcxproj的混合.在此计算机上,已安装Visual Studio 2008可再发行组件.这使我能够使用Visual Studio 2008(v90)工具集进行编译.我的目的是首先使用VS2015中的VS2008设置编译我的项目(出于限制原因,我必须使用v90工具集).因此,我相应地配置了VC++目录.链接项目的"配置"属性中没有"链接器"选项.在引用的属性中,启用以下配置:
c++ linker dependencies projects-and-solutions visual-studio
我在VS 2012中有一个解决方案,我尝试将启动项目更改为特定项目,但是使用熟悉的消息"Visual Studion Stop Working .."立即崩溃(使用其他项目 - 没有问题)
我还尝试在.suo文件中手动定义启动项目(详见为什么"设置为启动"选项存储在suo文件而不是sln文件中?)但是当我重新打开VS时,它会在程序集中崩溃加载.
知道可能是什么原因?
编辑:
额外细节:
它的解决方案还包含在本地IIS前运行的WCF项目,该项目在其他团队计算机中运行完全,具有相同的代码.事实证明,这似乎是一个环境问题,IIS设置,权限等.
请注意,我已经重置了VS设置,并且还修复了安装并且问题未解决.
也许有人知道'设置为启动项目'的逻辑操作是什么,除了起点定义之外,VS在操作期间执行了什么?我认为问题的根源隐藏在那里......
我有点不知道如何处理我的开发环境.任何时候我打开一个解决方案Visual Studio会提示我安装"带有Razor语法1.0的ASP.NET网页".
如果我忽略提示并继续进入解决方案,那么看起来不起作用的唯一事情就是剃刀视图中的智能感知.不是世界末日,但是当从解决方案转向解决方案时,会出现此消息,这已经开始变得烦人.
我试过了:
关于我接下来可以尝试什么的任何建议?

编辑:
因此,卸载了与visual studio和visual studio sp1相关的所有工具后,我重新安装了visual studio和service pack1.我去安装MVC3并且安装失败了.
从那里,我清除了我机器上的每个临时文件/目录,并尝试了网络平台安装程序.再一次,它失败了.
从那里,我尝试安装MVC3的RTM并且安装成功:http://www.microsoft.com/download/en/details.aspx?id = 4211
在最终安装了MVC3后,我能够安装工具更新,并且我已经备份并运行....浪费4小时的好方法......等等......
asp.net-mvc projects-and-solutions visual-studio-2010 visual-studio
我想知道如何确定此构建错误的来源;
Warning 4 The primary reference "MyNamespace.MyProject" could not be resolved because
it has an indirect dependency on the .NET Framework assembly "System.Xml, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than
the version "2.0.0.0" in the current target framework. MyNamespace.MyOtherProject
Run Code Online (Sandbox Code Playgroud)
我理解这个错误的意思(以及其他5个同样的项目),但我无法解决如何在我的情况下解决它.在这种情况下,"主要引用"(MyNamespace.MyProject)与.NET 4.0.x没有直接的依赖关系.
主要参考仅依赖于我的另一个项目(MyNamespace.MyCoreProject),构建的源项目(MyNamespace.MyOtherProject)也直接依赖于该项目.构建并没有抱怨该项目间接引用.NET 4.0.x,所以我认为我可以排除这一点.
主要引用直接依赖于三(3)个第三方DLL,所有这些DLL也都是Target .NET 2.0.
我已经使用dotPeek来检查构建的库,并且看不到任何使用.NET 4.0的引用.
工作中唯一的另一个潜在扳手是PostSharp的使用,它直接由'MyNamespace.MyCoreProject'引用(由主参考项目引用),这可能导致问题,因为我相信有一个相关的VS2010错误引用PostSharp.dll(http://www.sharpcrafters.com/forum/Topic4444-4-1.aspx#bm4462),但我也从构建链中删除了它仍然看到此错误,所以我假设我也可以统治那个.
如果有人能告诉我为什么会这样,真棒!如果没有,关于如何弄清楚不受干扰的"间接参考"的一些方向将同样有用!
顺便说一下,我已经尝试了以下所有工具来获取一些信息,但它们并没有告诉我很多我还不知道(这是有问题的DLL的直接依赖性); - .NET Reflector - dotPeek - IldAsm - 取决于(Dependency Walker)