Quantcast
Channel: MSBuild forum
Viewing all 2763 articles
Browse latest View live

Web Publish fails: "Unknown ProviderOption:DefiningProjectFullPath"

$
0
0

I am trying to get my build server up and running and ran into some problems.

The guys over at the TFS forums told me, i should try wether it works from inside Visual Studio or not and after i found out, that it does not they suggested i should ask the question here.

These are the Steps to reproduce:

-Install Windows Server (tried 2012 R2 and 2008 R2)

-Install TFS Express 2013 Update 2

-Install Visual Studio 2013 (Only check Microsoft Office Developer Tools and Microsoft Web Developer Tools)

-Install Update 1 for Visual Studio 2013

Using VS 2013 the Solution builds fine.

Trying to use Web Publish from inside VS gives the following log with error:

Transformed Web.config using C:\Builds\131\Senacor\Test\src\Senacor.Employee.EmployeeMasterData.Frontend\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
Transformed obj\Release\TransformWebConfig\transformed\Web.config using C:\Builds\131\Senacor\Test\src\Senacor.Employee.EmployeeMasterData.Frontend\\Web.Test.config into obj\Release\ProfileTransformWebConfig\transformed\Web.config.
Copying all files to temporary location below for package/publish:
obj\Release\AspnetCompileMerge\Source.
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v / -p C:\Builds\131\Senacor\Test\src\Senacor.Employee.EmployeeMasterData.Frontend\obj\Release\AspnetCompileMerge\Source -u -c C:\Builds\131\Senacor\Test\src\Senacor.Employee.EmployeeMasterData.Frontend\obj\Release\AspnetCompileMerge\TempBuildDir 
Auto ConnectionString Transformed obj\Release\AspnetCompileMerge\TempBuildDir\Views\Web.config into obj\Release\CSAutoParameterize\transformed\Views\Web.config.
Auto ConnectionString Transformed obj\Release\AspnetCompileMerge\TempBuildDir\Web.config into obj\Release\CSAutoParameterize\transformed\Web.config.
Copying all files to temporary location below for package/publish:
obj\Release\Package\PackageTmp.
Start Web Deploy Publish the Application/package to https://XXX:8172/msdeploy.axd?site=Default%20Web%20Site ...
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4255,5): Error : Web deployment task failed. (Unknown ProviderOption:DefiningProjectFullPath. Known ProviderOptions are:skipInvalid.)
Publish failed to deploy.

file not found in obj folder after building

$
0
0

Hai

After Building the project I find nothing in obj folder as I want compiled files in obj folder after building.

I am using Crypto Obfuscator which searches obj folder for exe file for building the setup project.

thanks.


programmer

VS 2010 VC++ Directory Settings in Properties file not being used when building VC++ project.

$
0
0

I am trying to set the VC++ include and lib paths in VS2010 on a global basis for the machine on which it is installed (not per user, and not per project).  I tried adding the <IncludePath> and <LibraryPath> to a property group in Microsoft.Cpp.props and/or in Microsoft.Cpp.Default.props, and those properties then DO show up in the IDE property screens as inherited properties, but when I build, I get errors as though those properties are not set.

The properties both show up and build correctly when they are in the Microsoft.Cpp.Win32.user.props file, but I want to set it once for the machine, not per user.

I also had removed the <Import Project....> entry in the VCXPROJ file for the Microsoft.Cpp.Win32.user.props, but that made no difference, and neither did explicitly including the Microsoft.Cpp.props and/or in Microsoft.Cpp.Default.props file(s).

Bottom line, is there a reason the <IncludePath> and <LibraryPath> may not be getting picked up from the Microsoft.Cpp.props and/or Microsoft.Cpp.Default.props files when I build the project?

Thanks.

Build error handling

$
0
0

Hi,

Am very new to .net platform and am asked to check build failures and report to the respective teams in my project.

Here is my query.

We do not use visual studio for building the solutions and there is a log file to check for build failures.

All I can see in the log file is, "Rebuild All: 21 succeeded,1 failed, 0 skipped"

How could I find, which 1 has failed?

Thanks,

Pradeep.

MSBuild gives LINK : fatal error LNK1104: cannot open file 'user32.lib'

$
0
0

I have a project that will build fine if I'm in VC++2005 and click on build, but fails with the following error if I try to build it with msbuild:

LINK : fatal error LNK1104: cannot open file 'user32.lib'

I looked at the buildlog.htm file and notice a significant difference in that in the buildlog when it fails there are extra lib files appended to the command line:

user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
 
The user32.lib is what MSBuild complains about.
 
I'm using a vcproj file that was generated with VC++2005IDE.
 
I'm a real noob so I could use some help.
 
Thanks.
 

MSBuild API for Solutions to be Rebuilt

$
0
0

I’m trying to programatically parse a Visual Studio sln file and determine if any project in the solution is not up to date, and thus needs to be built. I tried to do with with EnvDTE, and couldn’t get it to work.  It’s got something that is great, but only for VC++, and the IsDirty property there is documented (for internal use only) but I couldn’t even find it.

 

I moved on to the Microsoft.Build namespace, which is more what I need anyway, and I got some code written that according to the documentationshould work, I think.  For starters, I created a solution with two projects, and then built it. I then manually modified one of the files outside of visual studio so that it has a newer date/time than the output binaries. I wrote some code that looks like the following:

 

Project sln =ProjectCollection.GlobalProjectCollection.LoadProject(xmlReader);

 

sln.ReevaluateIfNecessary();

 

if (sln.IsDirty)

{

   bool build =true;

}

 

Unfortunately, build is always false.

 

I also tried the following code:

 

foreach (ProjectItem ProjItem in sln.GetItems("_SolutionProjectProjects"))

{

   string referencedProjectPath =Path.Combine(Path.GetDirectoryName(solutionPath), ProjItem.EvaluatedInclude);

   Project proj =ProjectCollection.GlobalProjectCollection.LoadProject(referencedProjectPath);

 

   proj.ReevaluateIfNecessary();

   if (proj.IsDirty)

   {

       bool build =true;

   }

}

 

Again, build is always false.

 

Am I doing something wrong? Am I misunderstanding the documentation?  Is there a way to use the MSBuild API to determine if a project (or solution) is out of date? I could probably cycle through the source files and check the dates one-by-one, but, as much as possible, I’d like to use the exact same logic that MSBuild uses instead of rolling my own.

 

Thanks,

 

Daniel

Custom Build failing

$
0
0
I recently installed visual studio 2013 on my machine. Currently I have visual studio 2010 and visual 2013 on my machine. I recently tried to run custom build tasks that previously worked fine in 2010 before I installed 2013. Now I get an error "Error 46 An error has occurred during compilation. error CS1703: An assembly with the same identity 'Microsoft.Build.Framework, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' has already been imported. Try removing one of the duplicate references"   I don't understand why Visual studio 2010 would have a reference to MSBuild 12.0 and it's driving me crazy.

Missing Coded UI Reference's when I queue the Build

$
0
0

My Build fails as it is unable to find the Coded UI Testing tool references. When I build the same solution from Visual Studio, it builds fine with no issues.

I have created the solution\project in Visual Studio 2012. 

Another project, which was in Visual Studio 2010 builds successfully

I get the following error when I queue the build

Run MSBuild for Project

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe /nologo /noconsolelogger "D:\Builds\41\QA\DailyRegressionTestSuites\Sources\ORION PROJECTS\UIMap_Orion\UIMap_Orion.sln" /m:1 /fl /flp:"logfile=D:\Builds\41\QA\DailyRegressionTestSuites\Sources\ORION PROJECTS\UIMap_Orion\UIMap_Orion.log;encoding=Unicode;verbosity=normal" /p:SkipInvalidConfigurations=true  /p:OutDir="D:\Builds\41\QA\DailyRegressionTestSuites\Binaries\\" /p:VCBuildOverride="D:\Builds\41\QA\DailyRegressionTestSuites\Sources\ORION PROJECTS\UIMap_Orion\UIMap_Orion.sln.vsprops"  /dl:WorkflowCentralLogger,"C:\Program Files\Microsoft Team Foundation Server 2010\Tools\Microsoft.TeamFoundation.Build.Server.Logger.dll";"Verbosity=Normal;BuildUri=vstfs:///Build/Build/63307;InformationNodeId=21301135;TargetsNotLogged=GetNativeManifest,GetCopyToOutputDirectoryItems,GetTargetPath;TFSUrl=http://tfs.int.kaplan.edu:8080/tfs/DefaultCollection;"*WorkflowForwardingLogger,"C:\Program Files\Microsoft Team Foundation Server 2010\Tools\Microsoft.TeamFoundation.Build.Server.Logger.dll";"Verbosity=Normal;"

00:09
Built $/QA/VSTS_PROJECTS/ORION PROJECTS/UIMap_Orion/UIMap_Orion.sln for default targets.

00:08
Built $/QA/VSTS_PROJECTS/ORION PROJECTS/UIMap_Orion/UIMap_Orion/UIMap_Orion.csproj for default targets.

 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (983): The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.

 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1605): There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll","AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.

 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1605): There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "System.Data","AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.

 CodedUITest1.cs (7): The type or namespace name 'UITesting' does not exist in the namespace 'Microsoft.VisualStudio.TestTools' (are you missing an assembly reference?)

 CodedUITest1.cs (9): The type or namespace name 'UITest' does not exist in the namespace 'Microsoft.VisualStudio.TestTools' (are you missing an assembly reference?)
 OrionAdmissionWindow.cs (9): The type or namespace name 'UITest' does not exist in the namespace 'Microsoft.VisualStudio.TestTools' (are you missing an assembly reference?)


Is there a setting (in Visual Studio 2013 build or SQL Server 2012) that affect SQL command CHECKIDENT(RESEED)

$
0
0

Greetings.

I am using CHECKIDENT(RESEED) in a Visual Studio 2013 script that clears numerous test data tables &
repopulates them afresh, whenever we deploy a revised build of the database project. The proper syntax (as per Microsoft) to restart the key-count at #1, is RESEED,1 for truncated tables & RESEED,0 for tables from which rows were
deleted (due to foreign keys) rather than truncated.

When the TFSBuild process is run on my PC (SQL Server 2012), all behaves as expected. The same istrue when another developer runs the build to his PC. However, when we run the (very same) build process to our Dev (network) server, the RESEED,0 populatesthose tables starting with key #0, rather than key #1. B/c some of the test data tables are related or populate specifically to certain key #'s, this causes problems for us. I have to continually change the SQL script mentioned, to use RESEED,1 for the deleted-from tables, to get the test data on the Dev server correct, then change it back for anyone else's build.

All SQL Servers appear to be running the same SQL Server version & service pack levels. Is there any setting, that anyone is aware of, that could cause such behavior? It is 100% consistent, every time the build process is run. (Or do you think this is
somehow some setting related to Visual Studio?)

Thanks,
Randy

MSFakes Error/Warning : Cannot generate stub for

$
0
0

I need to add Fakes for a dll.

The Fake is generated, but visual studio generates some warnings for like this:

 

Dll.fakes : warning : Some fakes could not be generated. For complete details, set Diagnostic attribute of the Fakes element in this file to 'true' and rebuild the project.

But when I generate Fakes on the TFS Build machine, the compilation of the test project fails with an error:

Built $/Root/SomeDll.Test.csproj for default targets.

 Fakes: cache : failed to compute assembly metadata hash
 Fakes: code : failed to generate stub type for type <XX>

And now the build is marked as Partially Succeeded.

The Fakes dll generation for that Type is failing because it is not finding some dependent assembly for that Fakes.

But the fact that I am not in need to generate Fakes for that type, and I don't get this error on Visul Studio but get it on TFS Build Machine is confusing.

Is there anyway to mark these as warning during TFS Build process also?

My undersatndind is that, it is the same MSBuild EXE that builds this test project on Visual Studio as well as on the build machine.

So how can the behavior be different?

Please help.

After installing VS2013 and upgrading to MSBuild API 12.0, new projects fail to build

$
0
0

Hello,

I have an utility that builds solution files for Azure deployment.

After upgrade to VS 2013 I updated all the projects to .Net Framework 4.5.1

I also update the utility to use Microsoft.Build version 12.0 instead of 4.0 as it was before.


After that I got an error while building:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Windows Azure Tools\2.3\Microsoft.WindowsAzure.targets(669,5): The "ValidateServiceFiles" task could not be instantiated from the assembly "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.3\bin\Microsoft.ServiceHosting.Tools.MSBuildTasks.dll". Please verify the task assembly has been built using the same version of the Microsoft.Build.Framework assembly as the one installed on your computer and that your host application is not missing a binding redirect for Microsoft.Build.Framework. Unable to cast object of type 'Microsoft.ServiceHosting.Tools.MSBuildTasks.ValidateServiceFiles' to type 'Microsoft.Build.Framework.ITask

On the other hand, this process executes with no issues.

var fileName = ToolLocationHelper.GetPathToBuildToolsFile( "msbuild.exe", "12.0", DotNetFrameworkArchitecture.Bitness64 ); Process p = new Process { StartInfo =

{FileName = fileName, Arguments = String.Format( "{0} /t:publish /p:TargetProfile={1};Configuration={2} /p:AzureSubscriptionID=\"{3}\" /p:AzureCertificateThumbprint=\"{4}\" /p:AzureStorageAccountName=\"{5}\" /p:AzureHostedServiceName=\"{6}\"", project.SolutionPath, Settings.Default.Target, Settings.Default.Configuration, Settings.Default.SubscriptionId, Settings.Default.Certificate, Settings.Default.StorageAccount, project.AzureName ) } }

Is there any other information I can provide that would help identify the issue?


MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(3243,9): error MSB4094

$
0
0

Hello,

After open my VS Ultimate 2012 C# solution in VS Ultimate 2013 12.0.21005.1REL I get the following warning:

Warning 1 Found conflicts between different versions of the same dependent assembly. Please set the "AutoGenerateBindingRedirects" property to true in the project file. For more information, see http://go.microsoft.com/fwlink/?LinkId=294190. EnergyMS

I follow the Microsoft link instructions. Then I edited the csproj file, adding the following line:


<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

When I build the solution again, I get the following error:


Error List
 "app.config;obj\x86\Debug\EnergyMS.csproj.EnergyMS.exe.config" is an invalid value for the "ConfigFile" parameter of the "GenerateApplicationManifest" task. Multiple items cannot be passed into a parameter of type "Microsoft.Build.Framework.ITaskItem". EnergyMS

Output Window:
C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(3243,9): error MSB4094: "app.config;obj\x86\Debug\EnergyMS.csproj.EnergyMS.exe.config" is an invalid value for the "ConfigFile" parameter of the "GenerateApplicationManifest" task. Multiple items cannot be passed into a parameter of type "Microsoft.Build.Framework.ITaskItem".

I've seen similar threads in fórum, but I don't understand the problem...

Can anyone help me understand the problem?

Thank you.

Email to database

$
0
0

Hello, 

Would like to have emails being sent to an exchange email address be routed into an sql database that my application uses and then generate a list where you can edit the "tickets" and assign notes to them

Does anyone have any ideas how this would be accomplished? 


Regards Eli Ailakis

Problem Getting C++ Projects To Build

$
0
0

I just installed the visual studio 2010 Professional Trial Edition. I Created a new CLR Project. When I tried to build it, I received the following error message:

 

Error 1 error MSB4014: The build stopped unexpectedly because of an internal failure.
Microsoft.Build.Exceptions.BuildAbortedException: Build was canceled. MSBuild.exe could not be launched as a child node as it could not be found at the location "C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe". If necessary, specify the correct location in the BuildParameters, or with the MSBUILD_EXE_PATH environment variable.
   at Microsoft.Build.BackEnd.NodeManager.AttemptCreateNode(INodeProvider nodeProvider, NodeConfiguration nodeConfiguration)
   at Microsoft.Build.BackEnd.NodeManager.CreateNode(NodeConfiguration configuration, NodeAffinity nodeAffinity)
   at Microsoft.Build.Execution.BuildManager.PerformSchedulingActions(IEnumerable`1 responses)
   at Microsoft.Build.Execution.BuildManager.HandleNewRequest(Int32 node, BuildRequestBlocker blocker)
   at Microsoft.Build.Execution.BuildManager.IssueRequestToScheduler(BuildSubmission submission, Boolean allowMainThreadBuild, BuildRequestBlocker blocker)  Icon Extractor (Icon Extractor\Icon Extractor)

Generate file on msi setup creation

$
0
0
I am creating a .msi setup of my Web Application. I want to create a readme.txt file in which version, product name, date and any other detail print whenever I build the deployment project(i.e whenever I make .msi setup). Assembly information file is also present in my project but I want to log it in text file. Which is the best way to do it.

The "FixPackageManifestTask" task failed unexpectedly.

$
0
0

Hello,

I've searched for a solution to this problem but could not find anything that was applicable.

A new project required me to install VS2012 onto my existing development machine using VS2010. After the installation i ran into packaging problems of existing VS2010 projects in VS2010 which I need to keep in VS2010 format for now.
I have not opened the VS2010 solutions in VS2012.

Before i installed VS2012 I consulted the article: Installing Visual Studio Versions Side-by-Side (

http://msdn.microsoft.com/en-us/library/ms246609(v=vs.110).aspx) which lead me to believe there shouldn't be any issues.

Below is the error i encounter: 

Error1 The "FixPackageManifestTask" task failed unexpectedly.
System.ArgumentException: Object of type 'Microsoft.Build.Execution.ProjectItemInstance+TaskItem' cannot be converted to type 'Microsoft.Build.Framework.ITaskItem'.
   at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast)
   at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo culture, BindingFlags invokeAttr)
   at System.Reflection.MethodBase.CheckArguments(Object[] parameters, Binder binder, BindingFlags invokeAttr, CultureInfo culture, Signature sig)
   at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index)
   at Microsoft.Build.Execution.TaskFactoryWrapper.SetPropertyValue(ITask task, TaskPropertyInfo property, Object value)
   at Microsoft.Build.BackEnd.TaskExecutionHost.InternalSetTaskParameter(TaskPropertyInfo parameter, Object parameterValue)

Any help is much appreciated!

Visual Studio 10 “The referenced project '{}' does not exist”

$
0
0

I have seen a few threads about this Visual Studio 2010 warning before. But none of them seem to show the project's identity like I am getting. (I'm assuming this is the project identifier.) When I compile my project I get:

"c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.Targets(1422,5): warning : The referenced project '{5BED5853-86EB-BA4F-A6E2-25A211A18E33}' does not exist."

Further, I can't seem to find which project this is referring too. In my project's properties > Common Properties > Framework and References, none of the references have project identifiers that match what the warning is showing.

So my question is, how can I determine what project reference is causing this, and how should I go about fixing it?  Everything is building fine right now with this warning, but I'm assuming its the reason why Visual Studio always asks me to build before launching the application.

(Project is a C++ application.)

build doesn't work as expected

$
0
0

Hi there!

Like my title says I've got a problem with the button "build".

Normally if i click "build" it should build only the changed files, but at the moment it always changes all sources. So it's working like rebuild. But that takes too much time.

The two possible problems I see are the following:
1 -> Maybe it can't see which files are changed!?

Is there a possibility to look for the files where the last build saves the timecodes?

2 -> Maybe it uses the wrong *.exe. I just know that "cl.exe" is used.

How can I see if VS maybe does a clean before building? I'm using VS 2010.

Thanks in advance.

Marius Schmidt

Include the latest items using the condition on the Item

$
0
0

Hi there,

I want to copy files from one server share to another server share which i have an idea how to do but before i do this i would like to include the latest msi file that i generate.

I noticed that the ItemGroup and Item have a "Condition" attribute but i do not know how to utilize this to include the latest file.

So far this is my setup:

<Target Name="AfterBuild"><ItemGroup><Installers Include="\\SERVERNAME\BuildOutput\ProductStream\**\Installers\Customer\Installer.msi"/></ItemGroup><Message Text="FirstItem: %(Installers.Filename)" /><Message Text="FirstItem: %(Installers.FullPath)" />

This is the output when i run MSBuild via command line:

\\Servername\BuildOutput\ProductStream\Installers\ProductStreamV2.1.1202.1402\Installer.msi
\\Servername\BuildOutput\ProductStream\Installers\ProductStreamV2.1.1405.1301\Installer.msi


I want to only include the latest one i.e in this case 2.1.1405.1301 build in the Item as this is the latest one.

I would appreciate if someone would assist me because i cannot find anything on how to go about doing this.

Kind Regards,



Release mode error D8003: missing source filename

$
0
0

Hi,

I created a small project (console application) and successfully built the project under debug mode. When I tried to build the project under the release mode, I got an error D8003:

Error    2    error D8003: missing source filename   

I checked the preprocessor definition, according to many suggestions. They are just default values, no any quotation marks there.

Preprocessor Definitions:

WIN32
NDEBUG
_CONSOLE

Inherited values:

_UNICODE
UNICODE

The command line is:

/I"C:\Projects\QuantLib_vc10-ltan\\" /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fp"build\Release\RunInterestRateModels.pch" /Fa"build\Release\" /Fo"build\Release\" /Fd"build\Release\vc100.pdb" /Gd /analyze- /errorReport:queue

Any help is really appreciated!

Thanks!

Viewing all 2763 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>