我将Ninject.MVC3软件包从2.2.1.0更新到2.2.2.0.在我通过BootStrapper.Kernel属性访问Kernel对象之前,但在新版本中,Kernel属性被标记为已过时.我收到警告说
'Public ReadOnly Property Kernel As Ninject.IKernel'已过时:'不要将Ninject用作服务定位器'.
在新版本中是否有不同的方式来访问内核?
所以我有一个基于WiX的MSI安装了一些设备驱动程序,因此我有一个x64和x86版本.该软件包还具有.NET 3.5依赖性,因此我正在生成一个引导程序来执行此操作,然后启动MSI.我的问题是,是否有人知道一种创建引导程序的方法,该引导程序将检测其运行的平台并启动相应的MSI.我已经开始搜索这样的解决方案了,到目前为止还没有发现任何问题.谢谢!
我在寻找VS2010的Bootstrapper Manifest Generator.我在哪里可以下载?我想以我包含Net Framework的方式在我的C#安装项目中包含MySQL安装程序.你能帮助我吗?
我有一个刻录安装,用户可以选择安装三个选项中的哪一个 - 每个选项直接与链中三个MsiPackages中的一个相关,例如:
<Chain>
<MsiPackage SourceFile="..\ProductA\bin\Release\ProductA.msi" InstallCondition="chkProductA" />
<MsiPackage SourceFile="..\ProductB\bin\Release\ProductB.msi" InstallCondition="chkProductA" />
<MsiPackage SourceFile="..\ProductC\bin\Release\ProductC.msi" InstallCondition="chkProductC" />
</Chain>
Run Code Online (Sandbox Code Playgroud)
一切都很好.但是,当我下次运行msi时,我只想重新安装/更新最初选择的项目 - 即如果只选择了productA,我不想安装B&C产品.
如何确定最初选择的内容?
关于如何下载和安装.NET Framework(如果它们不可用但没有完整的代码似乎可以在Internet上获得),有许多不完整的问题和答案.
您能提供最小的可编译代码或指向生成setup.exe/MSI的明确示例的链接吗?我不认为RTFM适用于这个问题,因为MSI和bootstrap安装程序有很多不容易扣除的特性.
我有一个自定义引导程序CustomBA和一个应用程序设置AppSetup.
我只希望AppSetup在添加/删除程序中可见,所以我删除了Bootstrapper的名称.这可确保它不在"添加/删除程序"中.
我有一个AppSetup的自定义卸载程序,它从程序菜单快捷方式调用.但是,这不会删除注册表中的Bootstrapper条目.
我应该添加自定义操作来删除引导程序注册表项还是有更直接的方法?
我已经看到在几个不同的地方使用的这些术语都意味着不同的东西,这取决于所涉及的技术.请有人向我解释一下C#中的含义以及使用它的好处吗?
我正在寻找与C#中的bootstrapping相关的答案.我正在寻找在C#方面,bootstrapping如何与其他.NET框架/组件相关.
我正在尝试实现自动版本控制,这样当我构建我的Bootstrapper时,MyApp和Bootstrapper版本都会自动递增和同步.否则,对于具有匹配版本的每次安装尝试,您最终会在添加/删除程序中使用重复的引导条目.
当我构建引导程序时,AfterBuild目标用于GetAssemblyIdentity成功获取自动生成的MyApp版本,并且引导程序输出文件使用递增的版本号正确命名,例如MyApp.1.0.5123.1352.exe
但是,当我安装这个Bootstrapper时,添加/删除程序中显示的版本总是如此1.0.0.0.
我已尝试在Bootstrapper Bundle Version字段中使用绑定,但我无法读取MyApp版本.
使用!(bind.packageVersion.MyApp)结果永远不会增加1.0.0.0.在构建错误中
使用!(bind.assemblyName.MyApp)结果(未解析的绑定时变量).在构建错误中
使用!(bind.FileVersion.filAAF013CA9B89B07C81031AE69884BF11)结果(未解析的绑定时变量).< - 有意义,因为Setup项目中存在FileID ,这就是Bootstrapper项目.
我该怎么做才能让我的Bootstrapper Bundle与它所包装的MyApp具有相同的版本?
===== MyApp的\ AssemblyInfo.cs中=====
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("1.0.*")]
Run Code Online (Sandbox Code Playgroud)
===== Setup.wixproj =====
<Target Name="BeforeBuild">
<PropertyGroup>
<LinkerBaseInputPaths>..\MyApp\bin\$(Configuration)\</LinkerBaseInputPaths>
</PropertyGroup>
<HeatDirectory OutputFile="MyApp_Files.wxs" Directory="..\MyApp\bin\$(Configuration)\" DirectoryRefId="INSTALLLOCATION" ComponentGroupName="MyApp_Project" SuppressCom="true" SuppressFragments="true" SuppressRegistry="true" SuppressRootDirectory="true" AutoGenerateGuids="false" GenerateGuidsNow="true" ToolPath="$(WixToolPath)" Condition="'%(ProjectReference.PackageThisProject)'=='True'" />
</Target>
Run Code Online (Sandbox Code Playgroud)
===== Bootstrapper.wixproj =====
<Target Name="AfterBuild">
<GetAssemblyIdentity AssemblyFiles="..\MyApp\bin\$(Configuration)\MyApp.exe">
<Output TaskParameter="Assemblies" ItemName="AssemblyVersion" />
</GetAssemblyIdentity>
<Copy SourceFiles=".\bin\$(Configuration)\$(OutputName).exe" DestinationFiles=".\bin\$(Configuration)\MyApp.%(AssemblyVersion.Version).exe" />
<Delete Files=".\bin\$(Configuration)\$(OutputName).exe" />
</Target>
Run Code Online (Sandbox Code Playgroud)
=====引导程序\ …
为我的MVC 2应用程序创建引导程序的最佳方法是什么?我正在使用Unity和AutoMapper,并希望尽可能地抽象它们的加载和配置.
这里有一个很好的例子(http://weblogs.asp.net/rashid/archive/2009/02/17/use-bootstrapper-in-your-asp-net-mvc-application-and-reduce-code-smell. aspx ),但UnityContainer实现了IDisposable,在这个例子中它永远不会被清除.这(在Bootstrapper中配置自动映射违反了开放 - 封闭原则?)也是一个不错的例子,但他也没有处理Unity/Disposable问题.
这是(http://www.dominicpettifer.co.uk/Blog/42/put-an-ioc-powered-bootstrapper-in-your-asp-net-mvc-application)另一个如何做Bootstrapper的好例子,但同样没有解决Unity/Disposable问题.
我想在一个静态变量中保持我的Bootstrapper对象,并使它实现IDisposable,但这听起来不对.
我在.NET Studio窗体项目的Visual Studio 2015中有一个安装项目,它需要SQL Server 2012 Express作为先决条件.我已经成功创建了一个bootstrapper(位于其中C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages\SqlExpress2012)并添加了以下命令以使其保持静默:
/q /action=Install /features=SQL,AS,RS,IS,Tools
/instancename=SQLExpress /sqlsvcaccount="NT AUTHORITY\Network Service"
/sqlsysadminaccounts="BUILTIN\Users"
/agtsvcaccount="NT AUTHORITY\Network Service"
/IAcceptSqlServerLicenseTerms /skiprules=RebootRequiredCheck`
Run Code Online (Sandbox Code Playgroud)
尽管如此,我仍然可以获得EULA弹出窗口/IAcceptSqlServerLicenseTerms.
这install.log表明该命令确实正在应用(事实上它确实安装了,就在我必须点击EULA之后).是什么赋予了?我很困惑它如何获取命令的所有其余部分但忽略了/IAcceptSqlServerLicenseTerms.
我唯一的理论是它首先调用SqlExpressChk.exe以确定是否安装x32或x64位版本,并且EULA附加到该版本.有什么想法吗?
这是install.log行,表明我的命令确实正在应用:
Installing using command 'C:\Users\ljhersma\AppData\Local\Temp\VSD11B8.tmp\SqlExpress2012\SQLEXPR_x64_ENU.EXE' and parameters '/qs /action=Install /features=SQL,AS,RS,IS,Tools /instancename=SQLExpress /sqlsvcaccount="NT AUTHORITY\Network Service" /sqlsysadminaccounts="BUILTIN\Users" /agtsvcaccount="NT AUTHORITY\Network Service" /ENABLERANU /IAcceptSqlServerLicenseTerms /skiprules=RebootRequiredCheck'
Run Code Online (Sandbox Code Playgroud) deployment installer bootstrapper sql-server-express visual-studio
bootstrapper ×10
wix ×5
burn ×3
c# ×2
.net ×1
asp.net-mvc ×1
automapper ×1
deployment ×1
installation ×1
installer ×1
msbuild ×1
mysql ×1
ninject ×1
wix3.6 ×1
wix3.7 ×1